import util from 'util.js';
/**
 * get方式请求
 * url 请求地址
 * success 成功的回调
 * fail 失败的回调
 */
const app = getApp();
function _get(url, data, success, fail) {
  //TODO 添加等待动画
  wx.showLoading({
    title: '加载中...',
  })
  wx.request({
    url: app.globalData.url + url,
    header: {
      'token': wx.getStorageSync('token'),
      // 'Content-Type': 'application/json'
    },
    data: data,
    success: function (res) {
      //TODO 隐藏等待动画
      wx.hideLoading();
      //半段是否为false
      isFalse(res);
      if (res.data.code && res.data.code == '401') {
        app.timeOutLogin(res)
      }
      success(res);
    },
    fail: function (res) {
      //TODO 隐藏等待动画
      wx.showToast({
        title: '请求失败',
        image: '../../image/shibai.png',
      })
      fail(res);
    }
  });
}
/**
 * post表单方式提交 
 * url 请求地址
 * success 成功的回调
 * fail 失败的回调
 */
function _post_form(url, data, success, fail) {
  //TODO 添加等待动画
  wx.showLoading({
    title: '加载中...',
  })
  wx.request({
    url: app.globalData.url + url,
    header: {
      'content-type': 'application/x-www-form-urlencoded',
      'token': wx.getStorageSync('token'),
    },
    method: 'POST',
    data: { data: data },
    success: function (res) {
      //TODO 隐藏等待动画
      wx.hideLoading();
      //半段是否为false
      isFalse(res);
      if (res.data.code && res.data.code == '401') {
        app.timeOutLogin(res)
      }
      success(res);
    },
    fail: function (res) {
      //TODO 隐藏等待动画
      wx.hideLoading();
      wx.showToast({
        title: '请求失败',
        image: '../../image/shibai.png',
      })
      fail(res);
    }
  });
}

/**
* post json方式提交 
* url 请求地址
* success 成功的回调
* fail 失败的回调
*/
function _post_json(url, data, success, fail) {
  //TODO 添加等待动画
  wx.showLoading({
    title: '加载中...',
  })
  wx.request({
    url: app.globalData.url + url,
    header: {
      'content-type': 'application/json',
      'token': wx.getStorageSync('token'),
    },
    method: 'POST',
    data: data,
    success: function (res) {
      //TODO 隐藏等待动画
      wx.hideLoading();
      if (res.data.code && res.data.code == '401') {
        app.timeOutLogin(res)
      }
      success(res);
    },
    fail: function (res) {
      //TODO 隐藏等待动画
      wx.hideLoading();
      wx.showToast({
        title: '网络异常',
        image: '../../image/shibai.png',
      })
      fail(res);
    }
  });
}
/**
* 上传文件
* url 请求地址
* success 成功的回调
*/
function _upload_file(url, file, filename, data, success) {
  wx.showLoading({
    title: '提交中...',
  })
  wx.uploadFile({
    url: app.globalData.url + url,
    filePath: file,
    name: filename,
    formData: data,
    header: {
      'token': wx.getStorageSync('token'),
    },
    success: function (res) {
      console.log(result)
      wx.hideLoading();
      var result = JSON.parse(res.data);
      console.log(result)
      //登录超时
      if (res.data.code && res.data.code == '401') {
        app.timeOutLogin(res)
      }
      if (result.success) {
        wx.hideLoading();
      } else {
        wx.showToast({
          title: result.msg,
          image: '../../image/shibai.png',
        })
      }
      success(result);
    },
    fail: function (res) {
      //TODO 隐藏等待动画
      wx.hideLoading();
      wx.showToast({
        title: '提交失败' + res.data,
        image: '../../image/shibai.png',
      })
    }

  })
}

/**
* post post表单方式提交
* url 请求地址
* success 成功的回调
*/
function _post_data(url, data, success) {
  _post_form(url, data, success, function (res) { })
}

/**
 * get方式请求
 * url 请求地址
 * success 成功的回调
 * fail 失败的回调
 */
function _get_data(url, data, success) {
  _get(url, data, success, function (res) { })
}
//判断是否为false
function isFalse(res) {
  if (res.data.success == false) {
    wx.showToast({
      title: res.data.msg,
      image: '../../image/shibai.png',
    })
  }

}
//计算两个时间的月数差
function getMonths(date1, date2) {
  //用-分成数组
  date1 = date1.split("-");
  date2 = date2.split("-");
  //获取年,月数,
  var year1 = parseInt(date1[0]),
    month1 = parseInt(date1[1]),
    year2 = parseInt(date2[0]),
    month2 = parseInt(date2[1]),
    //通过年,月差计算月份差
    months = (year2 - year1) * 12 + (month2 - month1);
  return months;
}
//验证手机号码
function checkMobile(str) {
  var
    re = /^1\d{10}$/
  if (re.test(str)) {
    return true;
  } else {
    return false;
  }
}


module.exports = {
  // _get_data: _get,
  // _post: _post_form,
  _get: _get_data,
  _post: _post_data,
  _post_json: _post_json,
  _upload_file: _upload_file,
  getMonths:getMonths,
  checkMobile: checkMobile
}